{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "f7771b98",
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "def func(x):\n",
    "    return x ** 4 -14 * x ** 3 + 60 * x ** 2 - 70 * x\n",
    "\n",
    "# 黄金分割法搜索单峰函数极小值\n",
    "def GoldenSectionSearch(l, r, func):\n",
    "    rho = (3 - np.sqrt(5)) / 2\n",
    "    a1 = rho * (r - l) + l # a1\n",
    "    b1 = r - rho * (r - l) # b1\n",
    "    \n",
    "    for i in range(10000):\n",
    "        if(func(a1) < func(b1)):\n",
    "            #压缩边界\n",
    "            r = b1\n",
    "            b1 = a1\n",
    "            a1 = rho * (r - l) + l\n",
    "        else:\n",
    "            l = a1\n",
    "            a1 = b1\n",
    "            b1 = r - rho * (r - l)\n",
    "            \n",
    "    return min(func(r), func(l))\n",
    "    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "07815d1f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "X = np.linspace(0, 2, 100)\n",
    "plt.plot(X, func(X))\n",
    "idx_min = np.argmin(func(X))\n",
    "min_x = X[idx_min]\n",
    "min_y = func(X[idx_min])\n",
    "plt.scatter(min_x, min_y, color='red', label='min')\n",
    "plt.annotate(f'min: {min_y}', xy=(min_x, min_y), xytext=(min_x, min_y+10),\n",
    "             arrowprops=dict(facecolor='black', arrowstyle='->'))\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.18"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
